package com.smart.carts.controller;

import com.smart.carts.common.reqeust.CartsRequestParams;
import com.smart.carts.common.vo.ResponseResult;
import com.smart.carts.entity.Carts;
import com.smart.carts.service.CartService;

import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;


/**
 * servlet  + jsp
 * 关联查询操作  事务
 * 数据安全  锁
 * 事务
 * 购物车功能
 * 1. 分页显示购物信息  分页查询
 * 2  删除购物车信息    更新
 * 2  删除多条购物车信息  批量更新
 * 4  修改购物车数量     修改
 * 5  添加商品到购物车    存在在修改数量  不存在添加记录
 *
 * @author zhangwei
 */
@RestController
@RequestMapping("/carts")
public class CartController {
    /**
     * 业务逻辑
     */
    @Resource
    private CartService cartService;

    /**
     * 添加购物车
     */
    @PostMapping("/add")
    public ResponseResult<Boolean> add(@RequestBody CartsRequestParams cartsRequestParams) {
        Boolean isAdd = cartService.add(cartsRequestParams);
        return ResponseResult.success(isAdd);
    }

    /**
     * 保存删除 购物车ID
     * 用户查看购物车信息
     */
    @PostMapping("/del/batch/")
    public ResponseResult<Integer> batchDel(@RequestParam List<Long> ids, @RequestParam Long memberId) {
        return ResponseResult.success(cartService.batchDel(ids, memberId));
    }

    /**
     * 查询用户购物车信息
     *
     * @return
     */
    @GetMapping("/list")
    public ResponseResult<List<Carts>> list(long memberId, int page, int size) {
        List<Carts> list = cartService.list(memberId, page, size);
        return ResponseResult.success(list);
    }

}

